var alreadySetSkuVals = {};//已经设置的SKU值数组

$(function(){
    //sku属性发生改变时,进行表格创建
    $(document).on("change",'.sku_value',function(){
        getAlreadySetSkuVals();//获取已经设置的SKU数组
        // console.log(alreadySetSkuVals);
        var b = true;
        var skuTypeArr =  [];//存放SKU类型的数组
        var totalRow = 1;//总行数
        //获取元素类型
        $(".SKU_TYPE").each(function(){
            //SKU类型节点
            var skuTypeNode = $(this).children("li");
            var skuTypeObj = {};//sku类型对象
            //SKU属性类型标题
            skuTypeObj.skuTypeTitle = $(skuTypeNode).attr("sku-type-name");
            //SKU属性类型主键
            var propid = $(skuTypeNode).attr("propid");
            skuTypeObj.skuTypeKey = propid;
            //是否是必选SKU 0：不是；1：是
            var is_required = $(skuTypeNode).attr("is_required");
            skuValueArr = [];//存放SKU值的数组
            //SKU相对应的节点
            var skuValNode = $(this).next();
            //获取SKU
            var skuValCheckBoxs = $(skuValNode).find("input[type='checkbox'][class*='sku_value']");
            var checkedNodeLen = 0 ;//选中的SKU节点的个数
            $(skuValCheckBoxs).each(function(){
                if($(this).is(":checked")){
                    var skuValObj = {};//SKU值对象
                    skuValObj.skuValueTitle = $(this).val();//SKU值名称
                    skuValObj.skuValueId = $(this).attr("propvalid");//SKU值id
                    skuValObj.skuPropId = $(this).attr("propid");//SKU类型id
                    skuValueArr.push(skuValObj);
                    checkedNodeLen ++ ;
                }
            });
            if(is_required && "1" == is_required){//必须的sku
                if(checkedNodeLen <= 0){//有必选的SKU仍然没有选中
                    b = false;
                    return false;//返回false
                }
            }
            if(skuValueArr && skuValueArr.length > 0){
                totalRow = totalRow * skuValueArr.length;
                skuTypeObj.skuValues = skuValueArr;//sku值数组
                skuTypeObj.skuValueLen = skuValueArr.length;//sku值长度
                skuTypeArr.push(skuTypeObj);//保存进数组
            }
        });
        var SKUTableDom = "";//sku表格数据
        //创建行
        if(b){//必须的sku都已选中

//			//调整顺序(少的在前,多的在后)
//			skuTypeArr.sort(function(skuType1,skuType2){
//				return (skuType1.skuValueLen - skuType2.skuValueLen)
//			});
//
            SKUTableDom += "<table id='demo' class='layui-table skuTable'><tr>";
            //创建表头
            for(var t = 0 ; t < skuTypeArr.length ; t ++){
                SKUTableDom += '<th style="text-align: center!important;font-weight: bold">'+skuTypeArr[t].skuTypeTitle+'</th>';
            }
            SKUTableDom += '<th style="text-align: center!important;font-weight: bold">价格</th>';
            SKUTableDom += '<th style="text-align: center!important;font-weight: bold">库存</th></tr>';
            //循环处理表体
            for(var i = 0 ; i < totalRow ; i ++){//总共需创建多少行
                var currRowDoms = "";
                var rowCount = 1;//记录行数
                var propvalidArr = [];//记录SKU值id
                var propIdArr = [];//属性类型id数组
                var propvalnameArr = [];//SKU值名称
                var propNameArr = [];//属性名称
                for(var j = 0 ; j < skuTypeArr.length ; j ++){
                    var skuValues = skuTypeArr[j].skuValues;//SKU值数组
                    var skuValueLen = skuValues.length;//sku值长度
                    rowCount = (rowCount * skuValueLen);//目前的生成的总行
                    var anInterBankNum = (totalRow / rowCount);
                    var point = ((i / anInterBankNum) % skuValueLen);
                    propNameArr.push(skuTypeArr[j].skuTypeTitle);
                    if(0  == (i % anInterBankNum)){//需创建的td
                        currRowDoms += '<td rowspan='+anInterBankNum+'>'+skuValues[point].skuValueTitle+'</td>';
                        propvalidArr.push(skuValues[point].skuValueId);
                        propIdArr.push(skuValues[point].skuPropId);
                        propvalnameArr.push(skuValues[point].skuValueTitle);
                    }else{
                        //当前单元格为跨行
                        propvalidArr.push(skuValues[parseInt(point)].skuValueId);
                        propIdArr.push(skuValues[parseInt(point)].skuPropId);
                        propvalnameArr.push(skuValues[parseInt(point)].skuValueTitle);
                    }
                }
//
//				//进行排序(主键小的在前,大的在后),注意:适用于数值类型的主键
//				propvalidArr.sort(function(provids1,propvids2){
//					return (provids1 - propvids2)
//				});

                var propvalids = propvalidArr.toString();
                var alreadySetSkuPrice = "";//已经设置的SKU价格
                var alreadySetSkuStock = "";//已经设置的SKU库存
                //璧嬪€�
                if(alreadySetSkuVals){
                    var currGroupSkuVal = alreadySetSkuVals[propvalids];//当前这组SKU
                    if(currGroupSkuVal){
                        alreadySetSkuPrice = currGroupSkuVal.skuPrice;
                        alreadySetSkuStock = currGroupSkuVal.skuStock
                    }
                }
                //console.log(propvalids);
                SKUTableDom +=
                    '<tr propvalids=\''+propvalids+'\' ' +
                    'propids=\''+propIdArr.toString()+'\' ' +
                    'propvalnames=\''+propvalnameArr.join(";")+'\'  ' +
                    'propnames=\''+propNameArr.join(";")+'\' ' +
                    'class="sku_table_tr">'+currRowDoms+
                    '<td width="20%"><input type="text" name="price" class="setting_sku_price" ' +
                    'value="'+alreadySetSkuPrice+'"/></td>' +
                    '<td width="20%"><input type="text" name="stock" class="setting_sku_stock" ' +
                    'value="'+alreadySetSkuStock+'"/></td></tr>';
            }
            SKUTableDom += "</table>";
        }
        $("#skuTable").html(SKUTableDom);
    });
});

/**
 * 获取已经设置的SKU
 */
function getAlreadySetSkuVals(){
    alreadySetSkuVals = {};
    //获取设置的SKU属性
    $("tr[class*='sku_table_tr']").each(function(){
        var skuPrice = $(this).find("input[type='text'][class*='setting_sku_price']").val();//SKU价格
        var skuStock = $(this).find("input[type='text'][class*='setting_sku_stock']").val();//SKU库存
        if(skuPrice || skuStock){//已经设置了全部或部分
            var propvalids = $(this).attr("propvalids");//SKU值主键集合
            alreadySetSkuVals[propvalids] = {
                "skuPrice" : skuPrice,
                "skuStock" : skuStock
            }
        }
    });
}